import request from '@/utils/request'

// ==================== 任务管理 ====================

// 获取任务列表
export function getTaskList(params) {
  return request({
    url: '/task',
    method: 'get',
    params
  })
}

// 获取任务详情
export function getTaskDetail(id) {
  return request({
    url: `/task/${id}`,
    method: 'get'
  })
}

// 获取我的任务
export function getMyTasks(params) {
  return request({
    url: '/task/my',
    method: 'get',
    params
  })
}

// 接受任务
export function acceptTask(taskId) {
  return request({
    url: `/task/${taskId}/accept`,
    method: 'post'
  })
}

// 开始任务
export function startTask(taskId) {
  return request({
    url: `/task/${taskId}/start`,
    method: 'put'
  })
}

// 提交任务
export function submitTask(taskId, data) {
  return request({
    url: `/task/${taskId}/submit`,
    method: 'post',
    data
  })
}

// 完成任务
export function completeTask(taskId, data) {
  return request({
    url: `/task/${taskId}/complete`,
    method: 'put',
    data
  })
}

// 获取任务进度
export function getTaskProgress(taskId) {
  return request({
    url: `/task/${taskId}/progress`,
    method: 'get'
  })
}

// 更新任务进度
export function updateTaskProgress(taskId, progress) {
  return request({
    url: `/task/${taskId}/progress`,
    method: 'put',
    data: { progress }
  })
}

// 获取任务统计
export function getTaskStatistics() {
  return request({
    url: '/task/statistics',
    method: 'get'
  })
}

// ==================== 任务分类 ====================

// 获取任务分类
export function getTaskCategories() {
  return request({
    url: '/task-category/tree',
    method: 'get'
  })
}

// 按分类获取任务
export function getTasksByCategory(categoryId, params) {
  return request({
    url: `/task/category/${categoryId}`,
    method: 'get',
    params
  })
}

// ==================== 任务评论 ====================

// 获取任务评论
export function getTaskComments(taskId) {
  return request({
    url: '/task-comment/tree',
    method: 'get',
    params: { taskId }
  })
}

// 添加评论
export function addTaskComment(data) {
  return request({
    url: '/task-comment',
    method: 'post',
    data
  })
}

// 删除评论
export function deleteTaskComment(id) {
  return request({
    url: `/task-comment/${id}`,
    method: 'delete'
  })
}

// ==================== 任务模板 ====================

// 获取任务模板
export function getTaskTemplates(params) {
  return request({
    url: '/task-template',
    method: 'get',
    params
  })
}

// 从模板创建任务
export function createTaskFromTemplate(templateId, data) {
  return request({
    url: `/task-template/${templateId}/create-task`,
    method: 'post',
    data
  })
}

// ==================== 任务协作 ====================

// 获取任务成员
export function getTaskMembers(taskId) {
  return request({
    url: `/task/${taskId}/members`,
    method: 'get'
  })
}

// 邀请成员
export function inviteTaskMember(taskId, userId) {
  return request({
    url: `/task/${taskId}/invite`,
    method: 'post',
    data: { userId }
  })
}

// 移除成员
export function removeTaskMember(taskId, userId) {
  return request({
    url: `/task/${taskId}/members/${userId}`,
    method: 'delete'
  })
}

// ==================== 任务标签 ====================

// 获取任务标签
export function getTaskTags() {
  return request({
    url: '/task-tags',
    method: 'get'
  })
}
